package com.guet.service;

import com.guet.DTO.CommentAddDTO;
import com.guet.DTO.CommentDTO;
import com.guet.DTO.TopicDeleteReasonDTO;
import com.guet.DTO.TopicSaveDTO;
import com.guet.VO.DeleteTopicAndReplyVO;
import com.guet.VO.TemplateTopicVO;
import com.guet.VO.TopicVO;
import com.guet.result.UnfinityPageResult;

import java.util.List;

public interface TopicService {
    List<TopicVO> list(String type);

    TopicVO getTopicDetail(String id);

    UnfinityPageResult getCommentList(CommentDTO commentDTO);

    void addComment(CommentAddDTO commentAddDTO);

    void save(TopicSaveDTO topicSaveDTO);

    TemplateTopicVO getDraft();

    void publish(TopicSaveDTO topicSaveDTO);

    void deleteTopicById(String id);

    void deleteCommentById(String id);

    void askReasonTopic(TopicDeleteReasonDTO topicDeleteReasonDTO);

    List<DeleteTopicAndReplyVO> getIllegalTopicList();

    void askReasonComment(TopicDeleteReasonDTO topicDeleteReasonDTO);
}
